package com.shanzmoo.core.domain.vo;

import com.alibaba.fastjson.JSON;
import com.shanzmoo.db.module.msys.entity.MSysMenuEntity;
import com.shanzmoo.db.module.psys.entity.PSysMenuEntity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.util.List;

/**
 * 菜单树
 *
 * @author： Gzhao 2021/3/28
 */
@Data
public class MenuTreeVO {

    /**
     * 自增ID
     */
    private Integer menuId;
    /**
     * 父级菜单
     */
    private Integer parentId;

    /**
     * 菜单名称
     */
    private String title;

    /**
     * 图标
     */
    private String icon;

    /**
     * 路由地址
     */
    private String component;

    /**
     * 路由名称
     */
    private String routerName;

    /**
     * 前端组件路径
     */
    private String path;

    /**
     * 是否隐藏菜单：0-显示，1-隐藏
     */
    private Boolean hidden;

    /**
     * 页面是否要缓存：0-否，1-是
     */
    private Boolean cache;

    /**
     * 是否要固定在面包屑中：0-否，1-是
     */
    private Boolean affix;

    /**
     * 权限标识
     */
    private String perms;

    /**
     * 排序号
     */
    private Integer index;

    @ApiModelProperty("子菜单")
    private List<MenuTreeVO> children;

    public static MenuTreeVO create(MSysMenuEntity entity) {
        return JSON.parseObject(JSON.toJSONString(entity), MenuTreeVO.class);
    }

    public static MenuTreeVO create(PSysMenuEntity entity) {
        MenuTreeVO treeVO = JSON.parseObject(JSON.toJSONString(entity), MenuTreeVO.class);
        treeVO.setMenuId(entity.getId());

        return treeVO;
    }
}
